사용자와 커널 모드

패스트캠퍼스 올인원 패키지 - 컴퓨터 공학을 보고 정리하는 용도의 포스팅입니다.


CPU Protection Rings

운영체제구조

CPU도 권한 모드가 있다

  • 사용자 모드 (user mode by applications)
    • 응용 프로그램이 사용
  • 커널 모드 (kernel mode by OS)
    • OS가 CPU를 사용할때 쓰는 모드
    • 특권 명령어 실행과 원하는 작업 수행을 위한 자원 접근 가능모드

실질적으로는 ring0과 ring3만 사용한다고 함.

ring3 = 사용자, ring0 = 커널


사용자 모드와 커널 모드

응용 프로그램이 함부로 전체 컴퓨터 시스템에 영향을 끼칠수 없음

  • 영향을 끼치려면? 악성 코드가 들어있으면 가능

응용 프로그램과 운영체제

운영체제구조2

위의 그림처럼 우리가 만들고 사용하는 프로그램은 가장 윗 단.

시스템콜은 커널 모드로 실행

  • 커널 모드에서만 실행 가능한 기능들이 있음
  • 커널 모드로 실행하려면 반드시 시스템 콜을 사용해야 함
  • 시스템 콜은 운영체제 제공

정리

  • 운영체제는 시스템 콜 제공

  • 프로그래밍 언어별로 운영체제 기능을 활용하기 위해, 시스템 콜을 기반으로 API제공

  • 응용 프로그램은 운영체제 기능 필요시, 해당 API를 사용해서 프로그램 작성

  • 시스템 콜을 사용하게 되는 전체적인 흐름은 다음과 같다

    1. 응용 프로그램 실행

    2. 운영체제 기능이 필요한 API호출

    3. 시스템 콜 호출
    4. 커널 모드 변경 -> OS 내부에서 해당 명령 실행
    5. 다시 응용프로그램으로 돌아감

Reference

패스트캠퍼스 - 올인원 패키지: 컴퓨터 공학 12강

Comments